www.gusucode.com > VC++ 高仿注册表编辑器-源码程序 > VC++ 高仿注册表编辑器-源码程序/code/VALUECREATE.cpp
//Download by http://www.NewXing.com // VALUECREATE.cpp : implementation file // #include "stdafx.h" #include "注册表管理.h" #include "VALUECREATE.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // VALUECREATE dialog VALUECREATE::VALUECREATE(CWnd* pParent /*=NULL*/) : CDialog(VALUECREATE::IDD, pParent) { //{{AFX_DATA_INIT(VALUECREATE) m_date = _T(""); m_name = _T(""); m_type = _T(""); //}}AFX_DATA_INIT } void VALUECREATE::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(VALUECREATE) DDX_Text(pDX, IDC_EDIT_DATE, m_date); DDX_Text(pDX, IDC_EDIT_NAME, m_name); DDX_Text(pDX, IDC_EDIT_TYPE, m_type); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(VALUECREATE, CDialog) //{{AFX_MSG_MAP(VALUECREATE) ON_BN_CLICKED(IDOK, OnCreate) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // VALUECREATE message handlers void VALUECREATE::SetDate(HKEY mkey, CString subkey) { MKEY =mkey; SubKey =subkey; } void VALUECREATE::OnCreate() { HKEY key; UpdateData(true); if(m_type=="REG_SZ") { if(RegOpenKeyEx(MKEY,SubKey.LockBuffer(),0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS) { if(::RegSetValueEx(key,m_name.LockBuffer(),0,REG_SZ,(const unsigned char *)m_date.LockBuffer(),MAX_PATH)==ERROR_SUCCESS) { MessageBox("创建成功!"); }else { MessageBox("创建失败!"); } }else { AfxMessageBox("打开注册表失败!"); } } if(m_type=="REG_DWORD") { if(RegOpenKeyEx(MKEY,SubKey.LockBuffer(),0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS) { if(::RegSetValueEx(key,m_name.LockBuffer(),0,REG_DWORD,(const unsigned char *)m_date.LockBuffer(),4)==ERROR_SUCCESS)//注意数据长度应该设为4 { MessageBox("创建成功!"); }else { MessageBox("创建失败!"); } }else { AfxMessageBox("打开注册表失败!"); } } if(m_type=="REG_BINARY") { if(RegOpenKeyEx(MKEY,SubKey.LockBuffer(),0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS) { if(::RegSetValueEx(key,m_name.LockBuffer(),0,REG_BINARY,(const unsigned char *)m_date.LockBuffer(),4)==ERROR_SUCCESS)//注意数据长度应该设为4 { MessageBox("创建成功!"); }else { MessageBox("创建失败!"); } }else { AfxMessageBox("打开注册表失败!"); } } if(m_type=="REG_EXPAND_SZ") { if(RegOpenKeyEx(MKEY,SubKey.LockBuffer(),0,KEY_ALL_ACCESS,&key)==ERROR_SUCCESS) { if(::RegSetValueEx(key,m_name.LockBuffer(),0,REG_SZ,(const unsigned char *)m_date.LockBuffer(),MAX_PATH)==ERROR_SUCCESS) { MessageBox("创建成功!"); }else { MessageBox("创建失败!"); } }else { AfxMessageBox("打开注册表失败!"); } } }